The Internet is a worldwide network using a common protocol, the TCP/IP (Transmission Control Protocol/Internet Protocol), for communicating information between computers. Client computers act as originators of the communication and request data; network server computers act as destinations of the communication and provide the requested data. A network client computer reaches a network server computer by specifying the server's Internet address. This is done by entering a URL (Uniform Resource Locator) to a browser, which is a program used to access the Internet. Access to particular data on the network server computer is then performed in several ways. One way is to complete the base URL with suffixes identifying locally the exact data path. Another way is to retrieve data by clicking on a data link which yields a local data request from the Network server itself or a remote data request from another computer accessible from the network server computer.
Computers acting as network servers may receive simultaneous requests from various network client computers. Consequently, they may be not able to answer the clients in a reasonable time. One way to solve this problem of data availability over the Internet is to clone the network server in several computers. In order to have a single address over the Internet network and to hide the existence of clones, a special network server computer called a Network Load Balancer (NLB) has been created. An NLB simplifies access to the data on network server computers by showing and maintaining a single URL to the Internet network, in the form of a virtual IP address (VIP), and improves performance by distributing the request to the least heavily loaded network server.
The NLB enlists the network server with the best performance to answer requests received from the Internet network having the VIP address. In order to dispatch the IP packets to this network server, network server performance metrics are statistically based on the time to answer sample requests made by the NLB. Based upon the measured-time-to-answer for a given network server, a weight is assigned to the server, which weight is used to compare its performance against the other network servers associated with the same VIP. Every packet coming from the same network client belonging to the same connection will be dispatched to the selected network server.
In a typical implementation, each network server is physically connected to two Local Area Networks (LAN): the Internet access LAN, which carries requests coming from the Internet, and the back-end access LAN, which provides data access for the network servers to several database servers, and also for remote administration of the network and database servers.
The performance measurement is done by sending sample requests over one of the two LANs. A limitation of this method is that the performance metrics do not guarantee the availability of the data requested by the network client computer. In case of a connection problem over one of the links, the NLB may continue to dispatch to a server because the NLB is not aware of the failure of the connection.